package Controlador;

import java.awt.Window;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JOptionPane;

import Vista.VistaMenu;
import Vista.VistaCategoria;
import Modelo.Categoria;
import Modelo.Accion;


public class CntrlCategoria implements ActionListener,ItemListener{
	
	VistaCategoria vistaCategoria;
	Accion accion=new Accion();
	
	public CntrlCategoria(VistaCategoria vistacategoria)
	{
		vistaCategoria=vistacategoria;
	    desActivar();	
		
	}
	
	
	public void actionPerformed(ActionEvent ae) {
		String opcion=(String)ae.getActionCommand();
		if(opcion.equals("Registrar")){
			boolean valida=false;
			valida=validarCampos();
			if(valida){
			Categoria categoria= new Categoria(vistaCategoria.txtCodigo.getText(),vistaCategoria.txtNombre.getText());
		    accion.registrarCategoria(categoria);
		    JOptionPane.showMessageDialog(null,"LA CATEGORIA HA SIDO REGISTRADA",
					"REGISTRO CATEGORIA", 
					JOptionPane.INFORMATION_MESSAGE);
			}
			else 
			{
				JOptionPane.showMessageDialog(null,"DEBE LLENAR TODOS LOS CAMPOS",
						"REGISTRO CATEGORIA", 
						JOptionPane.INFORMATION_MESSAGE);
				
			}
		}
		if(opcion.equals("Buscar")){
			boolean encontrado;
			Categoria categoria= new Categoria(vistaCategoria.txtCodigo.getText(),vistaCategoria.txtNombre.getText());
			
		    encontrado=accion.consultarCategoria(vistaCategoria.txtCodigo.getText());
		      if(encontrado){
		    	  categoria=accion.ObtenerCategoria(vistaCategoria.txtCodigo.getText());
		    	  vistaCategoria.txtNombre.setText(categoria.getNombCategoria());
		          activar();
		    }
		    else{
		    	JOptionPane.showMessageDialog(null, "LA CATEGORIA NO HA SIDO REGISTRADA", 
						"REGISTRO CATEGORIA ,", 
						JOptionPane.INFORMATION_MESSAGE);
		    	activar();
		    	vistaCategoria.btnRegistrar.setEnabled(true);
		    }
		}
		if(opcion.equals("Modificar")){
			Categoria categoria= new Categoria(vistaCategoria.txtCodigo.getText(),vistaCategoria.txtNombre.getText());
		   accion.modificarCategoria(vistaCategoria.txtCodigo.getText(),categoria);
		   JOptionPane.showMessageDialog(null, "LA CATEGORIA HA SIDO MODIFICADA ", 
					"REGISTRO CATEGORIA", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		if(opcion.equals("Eliminar")){
		    accion.eliminarCategoria(vistaCategoria.txtCodigo.getText());
		    JOptionPane.showMessageDialog(null, "LA CATEGORIA HA SIDO ELIMINADA", 
					"REGISTRO CATEGORIA", 
					JOptionPane.INFORMATION_MESSAGE);
		    
		    
		}
		if(opcion.equals("Limpiar")){
			  limpiar();
		}
		
		if(opcion.equals("    Salir   ")){
			vistaCategoria.dispose();
		}
		
				
	}
	
	private boolean validarCampos(){
		boolean sw= false;
		if ((!vistaCategoria.txtCodigo.getText().equals("")) && (!vistaCategoria.txtNombre.getText().equals("")))
		    sw=true;
		return sw;
		
	}

	private void limpiar() {
		vistaCategoria.txtCodigo.setEditable(true);
		vistaCategoria.btnBuscar.setEnabled(true);
		vistaCategoria.txtCodigo.setText("");
		vistaCategoria.txtNombre.setText("");
		desActivar();
	}
	private void desActivar(){
		vistaCategoria.txtNombre.setEnabled(false);
		vistaCategoria.btnRegistrar.setEnabled(false);
		vistaCategoria.btnEliminar.setEnabled(false);
		vistaCategoria.txtCodigo.requestFocus(true);
	}
	private void activar(){
		vistaCategoria.txtNombre.setEnabled(true);
		vistaCategoria.btnLimpiar.setEnabled(true);
		vistaCategoria.btnRegistrar.setEnabled(true);
		vistaCategoria.btnEliminar.setEnabled(true);
		vistaCategoria.txtNombre.requestFocus(true);
	}
	
	@Override
	public void itemStateChanged(ItemEvent arg0) {
		vistaCategoria.repaint();
		
	}
}	
